home *** CD-ROM | disk | FTP | other *** search
- /* dcop.f -- translated by f2c (version of 3 February 1990 3:36:42).
- You must link the resulting object file with the libraries:
- -lF77 -lI77 -lm -lc (in that order)
- */
-
- #include "f2c.h"
-
- /* Common Block Declarations */
-
- struct {
- integer ielmnt, isbckt, nsbckt, iunsat, nunsat, itemps, numtem, isens,
- nsens, ifour, nfour, ifield, icode, idelim, icolum, insize,
- junode, lsbkpt, numbkp, iorder, jmnode, iur, iuc, ilc, ilr,
- numoff, isr, nmoffc, iseq, iseq1, neqn, nodevs, ndiag, iswap,
- iequa, macins, lvnim1, lx0, lvn, lynl, lyu, lyl, lx1, lx2, lx3,
- lx4, lx5, lx6, lx7, ld0, ld1, ltd, imynl, imvn, lcvn, nsnod,
- nsmat, nsval, icnod, icmat, icval, loutpt, lpol, lzer, irswpf,
- irswpr, icswpf, icswpr, irpt, jcpt, irowno, jcolno, nttbr, nttar,
- lvntmp;
- } tabinf_;
-
- #define tabinf_1 tabinf_
-
- struct {
- integer locate[50], jelcnt[50], nunods, ncnods, numnod, nstop, nut, nlt,
- nxtrm, ndist, ntlin, ibr, numvs, numalt, numcyc;
- } cirdat_;
-
- #define cirdat_1 cirdat_
-
- struct {
- doublereal omega, time, delta, delold[7], ag[7], vt, xni, egfet, xmu,
- sfactr;
- integer mode, modedc, icalc, initf, method, iord, maxord, noncon, iterno,
- itemno, nosolv, modac, ipiv, ivmflg, ipostp, iscrch, iofile;
- } status_;
-
- #define status_1 status_
-
- struct {
- doublereal twopi, xlog2, xlog10, root2, rad, boltz, charge, ctok, gmin,
- reltol, abstol, vntol, trtol, chgtol, eps0, epssil, epsox, pivtol,
- pivrel;
- } knstnt_;
-
- #define knstnt_1 knstnt_
-
- struct {
- doublereal atime, aprog[3], adate, atitle[10], defl, defw, defad, defas,
- rstats[50];
- integer iwidth, lwidth, nopage;
- } miscel_;
-
- #define miscel_1 miscel_
-
- struct {
- doublereal tcstar[2], tcstop[2], tcincr[2];
- integer icvflg, itcelm[2], kssop, kinel, kidin, kovar, kidout;
- } dc_;
-
- #define dc_1 dc_
-
- struct {
- doublereal fstart, fstop, fincr, skw2, refprl, spw2;
- integer jacflg, idfreq, inoise, nosprt, nosout, nosin, idist, idprt;
- } ac_;
-
- #define ac_1 ac_
-
- struct {
- doublereal value[200000];
- } blank_;
-
- #define blank_1 blank_
-
- /* Table of constant values */
-
- static integer c__1 = 1;
- static integer c__2 = 2;
- static integer c__0 = 0;
-
- /* spice version 2g.6 sccsid=dcop.ma 3/15/83 */
- /*< subroutine dcop >*/
- /* Subroutine */ int dcop_()
- {
- /* Initialized data */
-
- static struct {
- char e_1[16];
- doublereal e_2;
- } equiv_229 = { {'(', '1', 'h', ' ', ',', 'a', '8', ',', ' ', ' ', 'f'
- , '1', '0', '.', '3', ')'}, 0. };
-
- #define afmt2 ((doublereal *)&equiv_229)
-
- static struct {
- char e_1[24];
- doublereal e_2;
- } equiv_230 = { {'(', '1', 'h', ' ', ',', 'a', '8', ',', '1', 'p', ' '
- , ' ', 'e', '1', '0', '.', '2', ')', ' ', ' ', ' ', ' ', ' ',
- ' '}, 0. };
-
- #define afmt3 ((doublereal *)&equiv_230)
-
- static struct {
- char e_1[24];
- doublereal e_2;
- } equiv_231 = { {'(', '\'', '0', 'm', 'o', 'd', 'e', 'l', ' ', ' ',
- ' ', '\'', ',', ' ', ' ', '(', '2', 'x', ',', 'a', '8', ')',
- ')', ' '}, 0. };
-
- #define afmt4 ((doublereal *)&equiv_231)
-
- static struct {
- char e_1[32];
- doublereal e_2;
- } equiv_232 = { {'o', 'p', 'e', 'r', 'a', 't', 'i', 'n', 'g', ' ', 'p'
- , 'o', 'i', 'n', 't', ' ', 'i', 'n', 'f', 'o', 'r', 'm', 'a',
- 't', 'i', 'o', 'n', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define optitl ((doublereal *)&equiv_232)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_233 = { {'v', 'd', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define avd (*(doublereal *)&equiv_233)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_234 = { {'v', 'b', 'e', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define avbe (*(doublereal *)&equiv_234)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_235 = { {'v', 'b', 'c', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define avbc (*(doublereal *)&equiv_235)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_236 = { {'v', 'c', 'e', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define avce (*(doublereal *)&equiv_236)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_237 = { {'v', 'g', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define avgs (*(doublereal *)&equiv_237)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_238 = { {'v', 'd', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define avds (*(doublereal *)&equiv_238)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_239 = { {'v', 'b', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define avbs (*(doublereal *)&equiv_239)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_240 = { {'v', '-', 's', 'o', 'u', 'r', 'c', 'e'}, 0. };
-
- #define asrcv (*(doublereal *)&equiv_240)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_241 = { {'i', '-', 's', 'o', 'u', 'r', 'c', 'e'}, 0. };
-
- #define asrci (*(doublereal *)&equiv_241)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_242 = { {'i', 'd', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define aid (*(doublereal *)&equiv_242)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_243 = { {'i', 'b', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define aib (*(doublereal *)&equiv_243)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_244 = { {'i', 'c', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define aic (*(doublereal *)&equiv_244)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_245 = { {'i', 'g', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define aig (*(doublereal *)&equiv_245)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_246 = { {'r', 'e', 'q', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define areq (*(doublereal *)&equiv_246)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_247 = { {'r', 'p', 'i', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define arpi (*(doublereal *)&equiv_247)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_248 = { {'r', 'o', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define aro (*(doublereal *)&equiv_248)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_249 = { {'c', 'a', 'p', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acap (*(doublereal *)&equiv_249)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_250 = { {'c', 'p', 'i', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acpi (*(doublereal *)&equiv_250)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_251 = { {'c', 'm', 'u', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acmu (*(doublereal *)&equiv_251)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_252 = { {'c', 'g', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acgs (*(doublereal *)&equiv_252)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_253 = { {'c', 'g', 'd', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acgd (*(doublereal *)&equiv_253)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_254 = { {'c', 'b', 'd', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acbd (*(doublereal *)&equiv_254)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_255 = { {'c', 'b', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acbs (*(doublereal *)&equiv_255)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_256 = { {'c', 'g', 's', 'o', 'v', 'l', ' ', ' '}, 0. };
-
- #define acgsov (*(doublereal *)&equiv_256)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_257 = { {'c', 'g', 'd', 'o', 'v', 'l', ' ', ' '}, 0. };
-
- #define acgdov (*(doublereal *)&equiv_257)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_258 = { {'c', 'g', 'b', 'o', 'v', 'l', ' ', ' '}, 0. };
-
- #define acgbov (*(doublereal *)&equiv_258)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_259 = { {'d', 'q', 'g', 'd', 'v', 'g', 'b', ' '}, 0. };
-
- #define acggb (*(doublereal *)&equiv_259)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_260 = { {'d', 'q', 'g', 'd', 'v', 'd', 'b', ' '}, 0. };
-
- #define acgdb (*(doublereal *)&equiv_260)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_261 = { {'d', 'q', 'g', 'd', 'v', 's', 'b', ' '}, 0. };
-
- #define acgsb (*(doublereal *)&equiv_261)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_262 = { {'d', 'q', 'b', 'd', 'v', 'g', 'b', ' '}, 0. };
-
- #define acbgb (*(doublereal *)&equiv_262)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_263 = { {'d', 'q', 'b', 'd', 'v', 'd', 'b', ' '}, 0. };
-
- #define acbdb (*(doublereal *)&equiv_263)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_264 = { {'d', 'q', 'b', 'd', 'v', 's', 'b', ' '}, 0. };
-
- #define acbsb (*(doublereal *)&equiv_264)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_265 = { {'c', 'g', 'b', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acgb (*(doublereal *)&equiv_265)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_266 = { {'c', 'd', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acds (*(doublereal *)&equiv_266)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_267 = { {'v', 't', 'h', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define avth (*(doublereal *)&equiv_267)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_268 = { {'v', 'd', 's', 'a', 't', ' ', ' ', ' '}, 0. };
-
- #define avdsat (*(doublereal *)&equiv_268)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_269 = { {'g', 'm', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define agm (*(doublereal *)&equiv_269)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_270 = { {'g', 'd', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define agds (*(doublereal *)&equiv_270)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_271 = { {'g', 'm', 'b', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define agmb (*(doublereal *)&equiv_271)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_272 = { {'c', 'c', 's', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define accs (*(doublereal *)&equiv_272)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_273 = { {'c', 'b', 'x', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define acbx (*(doublereal *)&equiv_273)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_274 = { {'r', 'x', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define arx (*(doublereal *)&equiv_274)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_275 = { {'b', 'e', 't', 'a', 'd', 'c', ' ', ' '}, 0. };
-
- #define abetad (*(doublereal *)&equiv_275)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_276 = { {'b', 'e', 't', 'a', 'a', 'c', ' ', ' '}, 0. };
-
- #define abetaa (*(doublereal *)&equiv_276)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_277 = { {'f', 't', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define aft (*(doublereal *)&equiv_277)
-
- static struct {
- char e_1[8];
- doublereal e_2;
- } equiv_278 = { {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, 0. };
-
- #define ablnk (*(doublereal *)&equiv_278)
-
- static struct {
- char e_1[24];
- doublereal e_2;
- } equiv_279 = { {'(', '/', '/', '1', 'h', '0', ',', '1', '0', 'x', ','
- , ' ', ' ', '(', '2', 'x', ',', 'a', '8', ')', ')', ' ', ' ',
- ' '}, 0. };
-
- #define afmt1 ((doublereal *)&equiv_279)
-
-
- /* Format strings */
- static char fmt_11[] = "(////5x,\002voltage source currents\002//5x,\002\
- name\002,7x,\002current\002/)";
- static char fmt_21[] = "(/5x,a8,1x,1pd10.3)";
- static char fmt_91[] = "(//5x,\002total power dissipation \002,1pd9.2\
- ,\002 watts\002)";
- static char fmt_111[] = "(\0020\002,/,\0020**** voltage-controlled curre\
- nt sources\002)";
- static char fmt_176[] = "(\0020\002,/,\0020**** voltage-controlled volta\
- ge sources\002)";
- static char fmt_187[] = "(\0020\002,/,\0020**** current-controlled curre\
- nt sources\002)";
- static char fmt_197[] = "(\0020\002,/,\0020**** current-controlled volta\
- ge sources\002)";
- static char fmt_211[] = "(\0020\002,/,\0020**** diodes\002)";
- static char fmt_301[] = "(\0020\002,/,\0020**** bipolar junction transis\
- tors\002)";
- static char fmt_401[] = "(\0020\002,/,\0020**** jfets\002)";
- static char fmt_501[] = "(\0020\002,/,\0020**** mosfets\002)";
- static char fmt_551[] = "(\002 derivatives of gate (dqgdvx) and bulk (dq\
- bdvx) charges\002)";
-
- /* System generated locals */
- integer i_1;
- doublereal d_1, d_2, d_3;
- static doublereal equiv_6[12], equiv_7[12], equiv_8[12], equiv_9[12],
- equiv_10[12], equiv_11[12], equiv_12[12], equiv_13[12], equiv_16[
- 12], equiv_17[12], equiv_18[12], equiv_19[12], equiv_20[12],
- equiv_21[12], equiv_22[12], equiv_23[12], equiv_24[12];
-
- /* Builtin functions */
- integer s_wsfe(), e_wsfe(), do_fio();
- double d_sign();
-
- /* Local variables */
- #define cggb (equiv_21)
- static doublereal cbsb[12], anam[12];
- #define cgsb (equiv_23)
- static doublereal amod[12];
- static integer ipos, kntr;
- extern /* Subroutine */ int move_();
- static integer locv, iptr, loct, locm;
- static doublereal type, xqco;
- extern /* Subroutine */ int sstf_();
- static integer node1, node2, node3, node4, node5, node6, i;
- static doublereal creal;
- #define cgdov (equiv_9)
- #define cgbov (equiv_10)
- #define cgsov (equiv_8)
- #define vdsat (equiv_12)
- static doublereal t1, power;
- extern /* Subroutine */ int title_();
- static doublereal t2;
- #define cb (equiv_16)
- #define cc (equiv_17)
- #define cd (equiv_13)
- #define cg (equiv_16)
- #define betaac (equiv_11)
- #define betadc (equiv_10)
- static doublereal gm[12];
- #define vd (equiv_16)
- #define ft (equiv_12)
- #define ro (equiv_7)
- #define nodplc ((integer *)&blank_1)
- #define cvalue ((complex *)&blank_1)
- extern logical memptr_();
- #define av1 (equiv_18)
- #define ai1 (equiv_19)
- #define cap (equiv_17)
- #define vbe (equiv_18)
- #define vbc (equiv_19)
- #define vce (equiv_20)
- #define cpi (equiv_8)
- #define cmu (equiv_9)
- #define ccs (equiv_13)
- #define req (equiv_20)
- #define cbx (equiv_21)
- #define rx (equiv_22)
- #define rpi (equiv_6)
- #define gds (equiv_19)
- #define vds (equiv_18)
- #define vgs (equiv_17)
- #define vbs (equiv_20)
- #define cbd (equiv_6)
- #define cbs (equiv_7)
- #define vth (equiv_11)
- static doublereal gmb[12];
- #define cgs (equiv_21)
- #define cgd (equiv_22)
- #define cgb (equiv_23)
- #define cds (equiv_24)
- extern /* Subroutine */ int alfnum_(), second_();
- static integer ititle, loc, numdev, kntlim;
- static doublereal xl, xw, covlgs, covlgd, covlgb, devmod;
- extern /* Subroutine */ int sencal_(), clrmem_();
- static doublereal cbdb[12];
- #define cbgb (equiv_24)
- #define cgdb (equiv_22)
-
- /* Fortran I/O blocks */
- static cilist io__112 = { 0, 0, 0, fmt_11, 0 };
- static cilist io__113 = { 0, 0, 0, fmt_21, 0 };
- static cilist io__116 = { 0, 0, 0, fmt_91, 0 };
- static cilist io__121 = { 0, 0, 0, fmt_111, 0 };
- static cilist io__122 = { 0, 0, 0, (char *)afmt1, 0 };
- static cilist io__124 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__125 = { 0, 0, 0, fmt_176, 0 };
- static cilist io__126 = { 0, 0, 0, (char *)afmt1, 0 };
- static cilist io__127 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__128 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__129 = { 0, 0, 0, fmt_187, 0 };
- static cilist io__130 = { 0, 0, 0, (char *)afmt1, 0 };
- static cilist io__131 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__132 = { 0, 0, 0, fmt_197, 0 };
- static cilist io__133 = { 0, 0, 0, (char *)afmt1, 0 };
- static cilist io__134 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__135 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__138 = { 0, 0, 0, fmt_211, 0 };
- static cilist io__139 = { 0, 0, 0, (char *)afmt1, 0 };
- static cilist io__140 = { 0, 0, 0, (char *)afmt4, 0 };
- static cilist io__141 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__142 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__143 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__144 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__148 = { 0, 0, 0, fmt_301, 0 };
- static cilist io__149 = { 0, 0, 0, (char *)afmt1, 0 };
- static cilist io__150 = { 0, 0, 0, (char *)afmt4, 0 };
- static cilist io__151 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__152 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__153 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__154 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__155 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__156 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__157 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__158 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__159 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__160 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__161 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__162 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__163 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__164 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__165 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__166 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__167 = { 0, 0, 0, fmt_401, 0 };
- static cilist io__168 = { 0, 0, 0, (char *)afmt1, 0 };
- static cilist io__169 = { 0, 0, 0, (char *)afmt4, 0 };
- static cilist io__170 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__171 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__172 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__173 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__174 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__175 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__176 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__190 = { 0, 0, 0, fmt_501, 0 };
- static cilist io__191 = { 0, 0, 0, (char *)afmt1, 0 };
- static cilist io__192 = { 0, 0, 0, (char *)afmt4, 0 };
- static cilist io__193 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__194 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__195 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__196 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__197 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__198 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__199 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__200 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__201 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__202 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__203 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__204 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__205 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__206 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__207 = { 0, 0, 0, fmt_551, 0 };
- static cilist io__208 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__209 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__210 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__211 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__212 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__213 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__214 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__215 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__216 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__217 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__218 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__219 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__220 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__221 = { 0, 0, 0, (char *)afmt2, 0 };
- static cilist io__222 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__223 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__224 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__225 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__226 = { 0, 0, 0, (char *)afmt3, 0 };
- static cilist io__227 = { 0, 0, 0, (char *)afmt3, 0 };
-
-
- /*< implicit double precision (a-h,o-z) >*/
-
- /* this routine prints out the operating points of the nonlinear */
- /* circuit elements. */
-
- /* spice version 2g.6 sccsid=tabinf 3/15/83 */
- /*< common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem, >*/
- /*< 1 isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize, >*/
- /*< 2 junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr, >*/
- /*< 3 nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1, >*/
- /*< 4 lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd, >*/
- /*< 5 imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval, >*/
- /*< 6 loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt, >*/
- /*< 7 irowno,jcolno,nttbr,nttar,lvntmp >*/
- /* spice version 2g.6 sccsid=cirdat 3/15/83 */
- /*< common /cirdat/ locate(50),jelcnt(50),nunods,ncnods,numnod,nstop, >*/
- /*< 1 nut,nlt,nxtrm,ndist,ntlin,ibr,numvs,numalt,numcyc >*/
- /* spice version 2g.6 sccsid=status 3/15/83 */
- /*< common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet, >*/
- /*< 1 xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon, >*/
- /*< 2 iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile >*/
- /* spice version 2g.6 sccsid=knstnt 3/15/83 */
- /*< common /knstnt/ twopi,xlog2,xlog10,root2,rad,boltz,charge,ctok, >*/
- /*< 1 gmin,reltol,abstol,vntol,trtol,chgtol,eps0,epssil,epsox, >*/
- /*< 2 pivtol,pivrel >*/
- /* spice version 2g.6 sccsid=miscel 3/15/83 */
- /*< common /miscel/ atime,aprog(3),adate,atitle(10),defl,defw,defad, >*/
- /*< 1 defas,rstats(50),iwidth,lwidth,nopage >*/
- /* spice version 2g.6 sccsid=dc 3/15/83 */
- /*< common /dc/ tcstar(2),tcstop(2),tcincr(2),icvflg,itcelm(2),kssop, >*/
- /*< 1 kinel,kidin,kovar,kidout >*/
- /* spice version 2g.6 sccsid=ac 3/15/83 */
- /*< common /ac/ fstart,fstop,fincr,skw2,refprl,spw2,jacflg,idfreq, >*/
- /*< 1 inoise,nosprt,nosout,nosin,idist,idprt >*/
- /* spice version 2g.6 sccsid=blank 3/15/83 */
- /*< common /blank/ value(200000) >*/
- /*< integer nodplc(64) >*/
- /*< complex cvalue(32) >*/
- /*< equivalence (value(1),nodplc(1),cvalue(1)) >*/
- /*< logical memptr >*/
-
-
- /*< dimension optitl(4) >*/
- /*< dimension anam(12),av1(12),ai1(12),req(12) >*/
- /*< dimension amod(12),vd(12),cap(12) >*/
- /*< dimension cb(12),cc(12),vbe(12),vbc(12),vce(12),rpi(12), >*/
- /*< 1 ro(12),cpi(12),cmu(12),betadc(12),betaac(12),ft(12), >*/
- /*< 2 ccs(12),cbx(12),rx(12) >*/
- /*< dimension cg(12),vgs(12),vds(12),gds(12),vbs(12),cbd(12),cbs(12), >*/
- /*< 2 cgsov(12),cgdov(12),cgbov(12),vth(12),vdsat(12),cd(12),gm(12), >*/
- /*< 3 cggb(12),cgdb(12),cgsb(12),cbgb(12),cbdb(12),cbsb(12), >*/
- /*< 4 gmb(12) >*/
- /*< dimension cgs(12),cgd(12),cgb(12),cds(12) >*/
- /*< equivalence(cb(1),cg(1)),(cc(1),vgs(1)),(vbe(1),vds(1)), >*/
- /*< 1(vbc(1),gds(1)),(vce(1),vbs(1)),(rpi(1),cbd(1)), >*/
- /*< 2(ro(1),cbs(1)),(cpi(1),cgsov(1)),(cmu(1),cgdov(1)), >*/
- /*< 3(betadc(1),cgbov(1)),(betaac(1),vth(1)),(ft(1),vdsat(1)), >*/
- /*< 4(ccs(1),cd(1)),(cbx(1),cggb(1)),(rx(1),cgdb(1)) >*/
- /*< equivalence(vd(1),cg(1)),(cap(1),vgs(1)),(av1(1),vds(1)), >*/
- /*< 1 (ai1(1),gds(1)),(req(1),vbs(1)) >*/
- /*< equivalence (cgs(1),cggb(1)),(cgd(1),cgdb(1)),(cgb(1),cgsb(1)), >*/
- /*< 1 (cds(1),cbgb(1)) >*/
- /*< dimension afmt1(3),afmt2(2),afmt3(3),afmt4(3) >*/
- /*< data optitl / 8hoperatin, 8hg point , 8hinformat, 8hion / >*/
- /*< data av,avd,avbe,avbc,avce,avgs,avds,avbs / 1hv,2hvd,3hvbe,3hvbc, >*/
- /*< 1 3hvce,3hvgs,3hvds,3hvbs / >*/
- /*< data acntrv,acntri,asrcv,asrci,atrang,atranr,avgain,aigain / >*/
- /*< 1 8hv-contrl, 8hi-contrl, 8hv-source, 8hi-source, >*/
- /*< 2 8htrans-g , 8htrans-r , 8hv gain , 8hi gain / >*/
- /*< data ai,aid,aib,aic,aig / 1hi,2hid,2hib,2hic,2hig / >*/
- /*< data areq,arpi,aro / 3hreq,3hrpi,2hro / >*/
- /*< data acap,acpi,acmu,acgs,acgd,acbd,acbs / 3hcap,3hcpi,3hcmu,3hcgs, >*/
- /*< 1 3hcgd,3hcbd,3hcbs / >*/
- /*< data acgsov,acgdov,acgbov /6hcgsovl,6hcgdovl,6hcgbovl/ >*/
- /*< data acggb,acgdb,acgsb,acbgb,acbdb,acbsb /7hdqgdvgb,7hdqgdvdb, >*/
- /*< 1 7hdqgdvsb,7hdqbdvgb,7hdqbdvdb,7hdqbdvsb/ >*/
- /*< data acgb,acds / 3hcgb,3hcds / >*/
- /*< data avth, avdsat / 3hvth, 5hvdsat / >*/
- /*< data agm,agds / 2hgm,3hgds / >*/
- /*< data agmb / 4hgmb / >*/
- /*< data accs,acbx,arx /3hccs,3hcbx,2hrx/ >*/
- /*< data abetad,abetaa / 6hbetadc,6hbetaac / >*/
- /*< data aft / 2hft / >*/
-
- /*< data ablnk /1h / >*/
- /*< data afmt1 /8h(//1h0,1,8h0x, (2x,8h,a8)) / >*/
- /*< data afmt2 /8h(1h ,a8,,8h f10.3)/ >*/
- /*< data afmt3 /8h(1h ,a8,,8h1p e10.,8h2) / >*/
- /*< data afmt4 /8h('0model,8h ', (,8h2x,a8)) / >*/
-
- /* .. fix-up the format statements */
-
- /*< kntr=12 >*/
- kntr = 12;
- /*< if(lwidth.le.80) kntr=7 >*/
- if (miscel_1.lwidth <= 80) {
- kntr = 7;
- }
- /*< ipos=12 >*/
- ipos = 12;
- /*< call move(afmt1,ipos,ablnk,1,2) >*/
- move_(afmt1, &ipos, &ablnk, &c__1, &c__2);
- /*< call alfnum(kntr,afmt1,ipos) >*/
- alfnum_(&kntr, afmt1, &ipos);
- /*< ipos=9 >*/
- ipos = 9;
- /*< call move(afmt2,ipos,ablnk,1,2) >*/
- move_(afmt2, &ipos, &ablnk, &c__1, &c__2);
- /*< call alfnum(kntr,afmt2,ipos) >*/
- alfnum_(&kntr, afmt2, &ipos);
- /*< ipos=11 >*/
- ipos = 11;
- /*< call move(afmt3,ipos,ablnk,1,2) >*/
- move_(afmt3, &ipos, &ablnk, &c__1, &c__2);
- /*< call alfnum(kntr,afmt3,ipos) >*/
- alfnum_(&kntr, afmt3, &ipos);
- /*< ipos=14 >*/
- ipos = 14;
- /*< call move(afmt4,ipos,ablnk,1,2) >*/
- move_(afmt4, &ipos, &ablnk, &c__1, &c__2);
- /*< call alfnum(kntr,afmt4,ipos) >*/
- alfnum_(&kntr, afmt4, &ipos);
-
- /* compute voltage source currents and power dissipation */
-
- /*< call second(t1) >*/
- second_(&t1);
- /*< if ((mode.eq.1).and.(modedc.eq.2).and.(nosolv.ne.0)) go to 700 >*/
- if (status_1.mode == 1 && status_1.modedc == 2 && status_1.nosolv != 0) {
- goto L700;
- }
- /*< power=0.0d0 >*/
- power = 0.;
- /*< if (jelcnt(9).eq.0) go to 50 >*/
- if (cirdat_1.jelcnt[8] == 0) {
- goto L50;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 11 format (////5x,'voltage source currents'//5x,'name', >*/
- /*< 1 7x,'current'/) >*/
- /* L11: */
- /*< loc=locate(9) >*/
- loc = cirdat_1.locate[8];
- /*< 20 if ((loc.eq.0).or.(nodplc(loc+11).ne.0)) go to 50 >*/
- L20:
- if (loc == 0 || nodplc[loc + 10] != 0) {
- goto L50;
- }
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< iptr=nodplc(loc+6) >*/
- iptr = nodplc[loc + 5];
- /*< creal=value(lvnim1+iptr) >*/
- creal = blank_1.value[tabinf_1.lvnim1 + iptr - 1];
- /*< power=power-creal*value(locv+1) >*/
- power -= creal * blank_1.value[locv];
- /*< if (ititle.eq.0) write (iofile,11) >*/
- if (ititle == 0) {
- io__112.ciunit = status_1.iofile;
- s_wsfe(&io__112);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,21) value(locv),creal >*/
- io__113.ciunit = status_1.iofile;
- s_wsfe(&io__113);
- do_fio(&c__1, (char *)&blank_1.value[locv - 1], (ftnlen)sizeof(doublereal)
- );
- do_fio(&c__1, (char *)&creal, (ftnlen)sizeof(doublereal));
- e_wsfe();
- /*< 21 format (/5x,a8,1x,1pd10.3) >*/
- /*< 30 loc=nodplc(loc) >*/
- /* L30: */
- loc = nodplc[loc - 1];
- /*< go to 20 >*/
- goto L20;
- /*< 50 loc=locate(10) >*/
- L50:
- loc = cirdat_1.locate[9];
- /*< 60 if ((loc.eq.0).or.(nodplc(loc+6).ne.0)) go to 90 >*/
- L60:
- if (loc == 0 || nodplc[loc + 5] != 0) {
- goto L90;
- }
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< node1=nodplc(loc+2) >*/
- node1 = nodplc[loc + 1];
- /*< node2=nodplc(loc+3) >*/
- node2 = nodplc[loc + 2];
- /*< power=power-value(locv+1) >*/
- /*< 1 *(value(lvnim1+node1)-value(lvnim1+node2)) >*/
- power -= blank_1.value[locv] * (blank_1.value[tabinf_1.lvnim1 + node1 - 1]
- - blank_1.value[tabinf_1.lvnim1 + node2 - 1]);
- /*< loc=nodplc(loc) >*/
- loc = nodplc[loc - 1];
- /*< go to 60 >*/
- goto L60;
- /*< 90 write (iofile,91) power >*/
- L90:
- io__116.ciunit = status_1.iofile;
- s_wsfe(&io__116);
- do_fio(&c__1, (char *)&power, (ftnlen)sizeof(doublereal));
- e_wsfe();
- /*< 91 format (//5x,'total power dissipation ',1pd9.2,' watts') >*/
-
- /* small signal device parameters */
-
- /*< numdev=jelcnt(5)+jelcnt(6)+jelcnt(7)+jelcnt(8)+jelcnt(11) >*/
- /*< 1 +jelcnt(12)+jelcnt(13)+jelcnt(14) >*/
- numdev = cirdat_1.jelcnt[4] + cirdat_1.jelcnt[5] + cirdat_1.jelcnt[6] +
- cirdat_1.jelcnt[7] + cirdat_1.jelcnt[10] + cirdat_1.jelcnt[11] +
- cirdat_1.jelcnt[12] + cirdat_1.jelcnt[13];
- /*< if (numdev.eq.0) go to 600 >*/
- if (numdev == 0) {
- goto L600;
- }
- /*< call title(0,lwidth,1,optitl) >*/
- title_(&c__0, &miscel_1.lwidth, &c__1, optitl);
- /*< kntlim=lwidth/11 >*/
- kntlim = miscel_1.lwidth / 11;
-
- /* nonlinear voltage controlled current sources */
-
- /*< if (jelcnt(5).eq.0) go to 175 >*/
- if (cirdat_1.jelcnt[4] == 0) {
- goto L175;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 111 format(1h0,/,'0**** voltage-controlled current sources') >*/
- /* L111: */
- /*< loc=locate(5) >*/
- loc = cirdat_1.locate[4];
- /*< kntr=0 >*/
- kntr = 0;
- /*< 120 if ((loc.eq.0).or.(nodplc(loc+13).ne.0)) go to 140 >*/
- L120:
- if (loc == 0 || nodplc[loc + 12] != 0) {
- goto L140;
- }
- /*< kntr=kntr+1 >*/
- ++kntr;
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< loct=lx0+nodplc(loc+12) >*/
- loct = tabinf_1.lx0 + nodplc[loc + 11];
- /*< anam(kntr)=value(locv) >*/
- anam[kntr - 1] = blank_1.value[locv - 1];
- /*< ai1(kntr)=value(loct) >*/
- ai1[kntr - 1] = blank_1.value[loct - 1];
- /*< if (kntr.ge.kntlim) go to 150 >*/
- if (kntr >= kntlim) {
- goto L150;
- }
- /*< 130 loc=nodplc(loc) >*/
- L130:
- loc = nodplc[loc - 1];
- /*< go to 120 >*/
- goto L120;
- /*< 140 if (kntr.eq.0) go to 175 >*/
- L140:
- if (kntr == 0) {
- goto L175;
- }
- /*< 150 if (ititle.eq.0) write (iofile,111) >*/
- L150:
- if (ititle == 0) {
- io__121.ciunit = status_1.iofile;
- s_wsfe(&io__121);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
- io__122.ciunit = status_1.iofile;
- s_wsfe(&io__122);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) asrci,(ai1(i),i=1,kntr) >*/
- io__124.ciunit = status_1.iofile;
- s_wsfe(&io__124);
- do_fio(&c__1, (char *)&asrci, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&ai1[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< kntr=0 >*/
- kntr = 0;
- /*< if ((loc.ne.0).and.(nodplc(loc+13).eq.0)) go to 130 >*/
- if (loc != 0 && nodplc[loc + 12] == 0) {
- goto L130;
- }
-
- /* nonlinear voltage controlled voltage sources */
-
- /*< 175 if (jelcnt(6).eq.0) go to 186 >*/
- L175:
- if (cirdat_1.jelcnt[5] == 0) {
- goto L186;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 176 format(1h0,/,'0**** voltage-controlled voltage sources') >*/
- /* L176: */
- /*< loc=locate(6) >*/
- loc = cirdat_1.locate[5];
- /*< kntr=0 >*/
- kntr = 0;
- /*< 178 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 182 >*/
- L178:
- if (loc == 0 || nodplc[loc + 13] != 0) {
- goto L182;
- }
- /*< kntr=kntr+1 >*/
- ++kntr;
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< loct=lx0+nodplc(loc+13) >*/
- loct = tabinf_1.lx0 + nodplc[loc + 12];
- /*< anam(kntr)=value(locv) >*/
- anam[kntr - 1] = blank_1.value[locv - 1];
- /*< av1(kntr)=value(loct) >*/
- av1[kntr - 1] = blank_1.value[loct - 1];
- /*< ai1(kntr)=value(loct+1) >*/
- ai1[kntr - 1] = blank_1.value[loct];
- /*< if (kntr.ge.kntlim) go to 184 >*/
- if (kntr >= kntlim) {
- goto L184;
- }
- /*< 180 loc=nodplc(loc) >*/
- L180:
- loc = nodplc[loc - 1];
- /*< go to 178 >*/
- goto L178;
- /*< 182 if (kntr.eq.0) go to 186 >*/
- L182:
- if (kntr == 0) {
- goto L186;
- }
- /*< 184 if (ititle.eq.0) write (iofile,176) >*/
- L184:
- if (ititle == 0) {
- io__125.ciunit = status_1.iofile;
- s_wsfe(&io__125);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
- io__126.ciunit = status_1.iofile;
- s_wsfe(&io__126);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) asrcv,(av1(i),i=1,kntr) >*/
- io__127.ciunit = status_1.iofile;
- s_wsfe(&io__127);
- do_fio(&c__1, (char *)&asrcv, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&av1[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) asrci,(ai1(i),i=1,kntr) >*/
- io__128.ciunit = status_1.iofile;
- s_wsfe(&io__128);
- do_fio(&c__1, (char *)&asrci, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&ai1[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< kntr=0 >*/
- kntr = 0;
- /*< if ((loc.ne.0).and.(nodplc(loc+14).eq.0)) go to 180 >*/
- if (loc != 0 && nodplc[loc + 13] == 0) {
- goto L180;
- }
-
- /* nonlinear current controlled current sources */
-
- /*< 186 if (jelcnt(7).eq.0) go to 196 >*/
- L186:
- if (cirdat_1.jelcnt[6] == 0) {
- goto L196;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 187 format(1h0,/,'0**** current-controlled current sources') >*/
- /* L187: */
- /*< loc=locate(7) >*/
- loc = cirdat_1.locate[6];
- /*< kntr=0 >*/
- kntr = 0;
- /*< 188 if ((loc.eq.0).or.(nodplc(loc+13).ne.0)) go to 192 >*/
- L188:
- if (loc == 0 || nodplc[loc + 12] != 0) {
- goto L192;
- }
- /*< kntr=kntr+1 >*/
- ++kntr;
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< loct=lx0+nodplc(loc+12) >*/
- loct = tabinf_1.lx0 + nodplc[loc + 11];
- /*< anam(kntr)=value(locv) >*/
- anam[kntr - 1] = blank_1.value[locv - 1];
- /*< ai1(kntr)=value(loct) >*/
- ai1[kntr - 1] = blank_1.value[loct - 1];
- /*< if (kntr.ge.kntlim) go to 194 >*/
- if (kntr >= kntlim) {
- goto L194;
- }
- /*< 190 loc=nodplc(loc) >*/
- L190:
- loc = nodplc[loc - 1];
- /*< go to 188 >*/
- goto L188;
- /*< 192 if (kntr.eq.0) go to 196 >*/
- L192:
- if (kntr == 0) {
- goto L196;
- }
- /*< 194 if (ititle.eq.0) write (iofile,187) >*/
- L194:
- if (ititle == 0) {
- io__129.ciunit = status_1.iofile;
- s_wsfe(&io__129);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
- io__130.ciunit = status_1.iofile;
- s_wsfe(&io__130);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) asrci,(ai1(i),i=1,kntr) >*/
- io__131.ciunit = status_1.iofile;
- s_wsfe(&io__131);
- do_fio(&c__1, (char *)&asrci, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&ai1[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< kntr=0 >*/
- kntr = 0;
- /*< if ((loc.ne.0).and.(nodplc(loc+13).eq.0)) go to 190 >*/
- if (loc != 0 && nodplc[loc + 12] == 0) {
- goto L190;
- }
-
- /* nonlinear current controlled voltage sources */
-
- /*< 196 if (jelcnt(8).eq.0) go to 210 >*/
- L196:
- if (cirdat_1.jelcnt[7] == 0) {
- goto L210;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 197 format(1h0,/,'0**** current-controlled voltage sources') >*/
- /* L197: */
- /*< loc=locate(8) >*/
- loc = cirdat_1.locate[7];
- /*< kntr=0 >*/
- kntr = 0;
- /*< 198 if ((loc.eq.0).or.(nodplc(loc+14).ne.0)) go to 202 >*/
- L198:
- if (loc == 0 || nodplc[loc + 13] != 0) {
- goto L202;
- }
- /*< kntr=kntr+1 >*/
- ++kntr;
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< loct=lx0+nodplc(loc+13) >*/
- loct = tabinf_1.lx0 + nodplc[loc + 12];
- /*< anam(kntr)=value(locv) >*/
- anam[kntr - 1] = blank_1.value[locv - 1];
- /*< av1(kntr)=value(loct) >*/
- av1[kntr - 1] = blank_1.value[loct - 1];
- /*< ai1(kntr)=value(loct+1) >*/
- ai1[kntr - 1] = blank_1.value[loct];
- /*< if (kntr.ge.kntlim) go to 204 >*/
- if (kntr >= kntlim) {
- goto L204;
- }
- /*< 200 loc=nodplc(loc) >*/
- L200:
- loc = nodplc[loc - 1];
- /*< go to 198 >*/
- goto L198;
- /*< 202 if (kntr.eq.0) go to 210 >*/
- L202:
- if (kntr == 0) {
- goto L210;
- }
- /*< 204 if (ititle.eq.0) write (iofile,197) >*/
- L204:
- if (ititle == 0) {
- io__132.ciunit = status_1.iofile;
- s_wsfe(&io__132);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
- io__133.ciunit = status_1.iofile;
- s_wsfe(&io__133);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) asrcv,(av1(i),i=1,kntr) >*/
- io__134.ciunit = status_1.iofile;
- s_wsfe(&io__134);
- do_fio(&c__1, (char *)&asrcv, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&av1[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) asrci,(ai1(i),i=1,kntr) >*/
- io__135.ciunit = status_1.iofile;
- s_wsfe(&io__135);
- do_fio(&c__1, (char *)&asrci, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&ai1[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< kntr=0 >*/
- kntr = 0;
- /*< if ((loc.ne.0).and.(nodplc(loc+14).eq.0)) go to 200 >*/
- if (loc != 0 && nodplc[loc + 13] == 0) {
- goto L200;
- }
-
- /* diodes */
-
- /*< 210 if (jelcnt(11).eq.0) go to 300 >*/
- L210:
- if (cirdat_1.jelcnt[10] == 0) {
- goto L300;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 211 format(1h0,/,'0**** diodes') >*/
- /* L211: */
- /*< loc=locate(11) >*/
- loc = cirdat_1.locate[10];
- /*< kntr=0 >*/
- kntr = 0;
- /*< 220 if ((loc.eq.0).or.(nodplc(loc+16).ne.0)) go to 240 >*/
- L220:
- if (loc == 0 || nodplc[loc + 15] != 0) {
- goto L240;
- }
- /*< kntr=kntr+1 >*/
- ++kntr;
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< node1=nodplc(loc+2) >*/
- node1 = nodplc[loc + 1];
- /*< node2=nodplc(loc+3) >*/
- node2 = nodplc[loc + 2];
- /*< locm=nodplc(loc+5) >*/
- locm = nodplc[loc + 4];
- /*< locm=nodplc(locm+1) >*/
- locm = nodplc[locm];
- /*< loct=lx0+nodplc(loc+11) >*/
- loct = tabinf_1.lx0 + nodplc[loc + 10];
- /*< anam(kntr)=value(locv) >*/
- anam[kntr - 1] = blank_1.value[locv - 1];
- /*< amod(kntr)=value(locm) >*/
- amod[kntr - 1] = blank_1.value[locm - 1];
- /*< cd(kntr)=value(loct+1) >*/
- cd[kntr - 1] = blank_1.value[loct];
- /*< vd(kntr)=value(lvnim1+node1)-value(lvnim1+node2) >*/
- vd[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node1 - 1] - blank_1.value[
- tabinf_1.lvnim1 + node2 - 1];
- /*< if (modedc.ne.1) go to 225 >*/
- if (status_1.modedc != 1) {
- goto L225;
- }
- /*< req(kntr)=1.0d0/value(loct+2) >*/
- req[kntr - 1] = 1. / blank_1.value[loct + 1];
- /*< cap(kntr)=value(loct+4) >*/
- cap[kntr - 1] = blank_1.value[loct + 3];
- /*< 225 if (kntr.ge.kntlim) go to 250 >*/
- L225:
- if (kntr >= kntlim) {
- goto L250;
- }
- /*< 230 loc=nodplc(loc) >*/
- L230:
- loc = nodplc[loc - 1];
- /*< go to 220 >*/
- goto L220;
- /*< 240 if (kntr.eq.0) go to 300 >*/
- L240:
- if (kntr == 0) {
- goto L300;
- }
- /*< 250 if (ititle.eq.0) write (iofile,211) >*/
- L250:
- if (ititle == 0) {
- io__138.ciunit = status_1.iofile;
- s_wsfe(&io__138);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
- io__139.ciunit = status_1.iofile;
- s_wsfe(&io__139);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt4) (amod(i),i=1,kntr) >*/
- io__140.ciunit = status_1.iofile;
- s_wsfe(&io__140);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&amod[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) aid,(cd(i),i=1,kntr) >*/
- io__141.ciunit = status_1.iofile;
- s_wsfe(&io__141);
- do_fio(&c__1, (char *)&aid, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avd,(vd(i),i=1,kntr) >*/
- io__142.ciunit = status_1.iofile;
- s_wsfe(&io__142);
- do_fio(&c__1, (char *)&avd, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< if (modedc.ne.1) go to 260 >*/
- if (status_1.modedc != 1) {
- goto L260;
- }
- /*< write (iofile,afmt3) areq,(req(i),i=1,kntr) >*/
- io__143.ciunit = status_1.iofile;
- s_wsfe(&io__143);
- do_fio(&c__1, (char *)&areq, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&req[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acap,(cap(i),i=1,kntr) >*/
- io__144.ciunit = status_1.iofile;
- s_wsfe(&io__144);
- do_fio(&c__1, (char *)&acap, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cap[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< 260 kntr=0 >*/
- L260:
- kntr = 0;
- /*< if ((loc.ne.0).and.(nodplc(loc+16).eq.0)) go to 230 >*/
- if (loc != 0 && nodplc[loc + 15] == 0) {
- goto L230;
- }
-
- /* bipolar junction transistors */
-
- /*< 300 if (jelcnt(12).eq.0) go to 400 >*/
- L300:
- if (cirdat_1.jelcnt[11] == 0) {
- goto L400;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 301 format(1h0,/,'0**** bipolar junction transistors') >*/
- /* L301: */
- /*< loc=locate(12) >*/
- loc = cirdat_1.locate[11];
- /*< kntr=0 >*/
- kntr = 0;
- /*< 320 if ((loc.eq.0).or.(nodplc(loc+36).ne.0)) go to 340 >*/
- L320:
- if (loc == 0 || nodplc[loc + 35] != 0) {
- goto L340;
- }
- /*< kntr=kntr+1 >*/
- ++kntr;
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< node1=nodplc(loc+2) >*/
- node1 = nodplc[loc + 1];
- /*< node2=nodplc(loc+3) >*/
- node2 = nodplc[loc + 2];
- /*< node3=nodplc(loc+4) >*/
- node3 = nodplc[loc + 3];
- /*< locm=nodplc(loc+8) >*/
- locm = nodplc[loc + 7];
- /*< type=nodplc(locm+2) >*/
- type = (doublereal) nodplc[locm + 1];
- /*< locm=nodplc(locm+1) >*/
- locm = nodplc[locm];
- /*< loct=lx0+nodplc(loc+22) >*/
- loct = tabinf_1.lx0 + nodplc[loc + 21];
- /*< anam(kntr)=value(locv) >*/
- anam[kntr - 1] = blank_1.value[locv - 1];
- /*< amod(kntr)=value(locm) >*/
- amod[kntr - 1] = blank_1.value[locm - 1];
- /*< cb(kntr)=type*value(loct+3) >*/
- cb[kntr - 1] = type * blank_1.value[loct + 2];
- /*< cc(kntr)=type*value(loct+2) >*/
- cc[kntr - 1] = type * blank_1.value[loct + 1];
- /*< vbe(kntr)=value(lvnim1+node2)-value(lvnim1+node3) >*/
- vbe[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node2 - 1] -
- blank_1.value[tabinf_1.lvnim1 + node3 - 1];
- /*< vbc(kntr)=value(lvnim1+node2)-value(lvnim1+node1) >*/
- vbc[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node2 - 1] -
- blank_1.value[tabinf_1.lvnim1 + node1 - 1];
- /*< vce(kntr)=vbe(kntr)-vbc(kntr) >*/
- vce[kntr - 1] = vbe[kntr - 1] - vbc[kntr - 1];
- /*< betadc(kntr)=cc(kntr)/dsign(dmax1(dabs(cb(kntr)),1.0d-20), >*/
- /*< 1 cb(kntr)) >*/
- /* Computing MAX */
- d_3 = (d_1 = cb[kntr - 1], abs(d_1));
- d_2 = max(1e-20,d_3);
- betadc[kntr - 1] = cc[kntr - 1] / d_sign(&d_2, &cb[kntr - 1]);
- /*< if (modedc.ne.1) go to 325 >*/
- if (status_1.modedc != 1) {
- goto L325;
- }
- /*< rx(kntr)=0.0d0 >*/
- rx[kntr - 1] = 0.;
- /*< if(value(loct+16).ne.0.0d0) rx(kntr)=1.0d0/value(loct+16) >*/
- if (blank_1.value[loct + 15] != 0.) {
- rx[kntr - 1] = 1. / blank_1.value[loct + 15];
- }
- /*< ccs(kntr)=value(loct+13) >*/
- ccs[kntr - 1] = blank_1.value[loct + 12];
- /*< cbx(kntr)=value(loct+15) >*/
- cbx[kntr - 1] = blank_1.value[loct + 14];
- /*< rpi(kntr)=1.0d0/value(loct+4) >*/
- rpi[kntr - 1] = 1. / blank_1.value[loct + 3];
- /*< gm(kntr)=value(loct+6) >*/
- gm[kntr - 1] = blank_1.value[loct + 5];
- /*< ro(kntr)=1.0d0/value(loct+7) >*/
- ro[kntr - 1] = 1. / blank_1.value[loct + 6];
- /*< cpi(kntr)=value(loct+9) >*/
- cpi[kntr - 1] = blank_1.value[loct + 8];
- /*< cmu(kntr)=value(loct+11) >*/
- cmu[kntr - 1] = blank_1.value[loct + 10];
- /*< betaac(kntr)=gm(kntr)*rpi(kntr) >*/
- betaac[kntr - 1] = gm[kntr - 1] * rpi[kntr - 1];
- /*< ft(kntr)=gm(kntr)/(twopi*dmax1(cpi(kntr)+cmu(kntr)+cbx(kntr), >*/
- /*< 1 1.0d-20)) >*/
- /* Computing MAX */
- d_1 = cpi[kntr - 1] + cmu[kntr - 1] + cbx[kntr - 1];
- ft[kntr - 1] = gm[kntr - 1] / (knstnt_1.twopi * max(1e-20,d_1));
- /*< 325 if (kntr.ge.kntlim) go to 350 >*/
- L325:
- if (kntr >= kntlim) {
- goto L350;
- }
- /*< 330 loc=nodplc(loc) >*/
- L330:
- loc = nodplc[loc - 1];
- /*< go to 320 >*/
- goto L320;
- /*< 340 if (kntr.eq.0) go to 400 >*/
- L340:
- if (kntr == 0) {
- goto L400;
- }
- /*< 350 if (ititle.eq.0) write (iofile,301) >*/
- L350:
- if (ititle == 0) {
- io__148.ciunit = status_1.iofile;
- s_wsfe(&io__148);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
- io__149.ciunit = status_1.iofile;
- s_wsfe(&io__149);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt4) (amod(i),i=1,kntr) >*/
- io__150.ciunit = status_1.iofile;
- s_wsfe(&io__150);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&amod[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) aib,(cb(i),i=1,kntr) >*/
- io__151.ciunit = status_1.iofile;
- s_wsfe(&io__151);
- do_fio(&c__1, (char *)&aib, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) aic,(cc(i),i=1,kntr) >*/
- io__152.ciunit = status_1.iofile;
- s_wsfe(&io__152);
- do_fio(&c__1, (char *)&aic, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cc[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avbe,(vbe(i),i=1,kntr) >*/
- io__153.ciunit = status_1.iofile;
- s_wsfe(&io__153);
- do_fio(&c__1, (char *)&avbe, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vbe[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avbc,(vbc(i),i=1,kntr) >*/
- io__154.ciunit = status_1.iofile;
- s_wsfe(&io__154);
- do_fio(&c__1, (char *)&avbc, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vbc[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avce,(vce(i),i=1,kntr) >*/
- io__155.ciunit = status_1.iofile;
- s_wsfe(&io__155);
- do_fio(&c__1, (char *)&avce, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vce[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) abetad,(betadc(i),i=1,kntr) >*/
- io__156.ciunit = status_1.iofile;
- s_wsfe(&io__156);
- do_fio(&c__1, (char *)&abetad, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&betadc[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< if (modedc.ne.1) go to 360 >*/
- if (status_1.modedc != 1) {
- goto L360;
- }
- /*< write (iofile,afmt3) agm,(gm(i),i=1,kntr) >*/
- io__157.ciunit = status_1.iofile;
- s_wsfe(&io__157);
- do_fio(&c__1, (char *)&agm, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&gm[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) arpi,(rpi(i),i=1,kntr) >*/
- io__158.ciunit = status_1.iofile;
- s_wsfe(&io__158);
- do_fio(&c__1, (char *)&arpi, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&rpi[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) arx,(rx(i),i=1,kntr) >*/
- io__159.ciunit = status_1.iofile;
- s_wsfe(&io__159);
- do_fio(&c__1, (char *)&arx, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&rx[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) aro,(ro(i),i=1,kntr) >*/
- io__160.ciunit = status_1.iofile;
- s_wsfe(&io__160);
- do_fio(&c__1, (char *)&aro, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&ro[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acpi,(cpi(i),i=1,kntr) >*/
- io__161.ciunit = status_1.iofile;
- s_wsfe(&io__161);
- do_fio(&c__1, (char *)&acpi, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cpi[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acmu,(cmu(i),i=1,kntr) >*/
- io__162.ciunit = status_1.iofile;
- s_wsfe(&io__162);
- do_fio(&c__1, (char *)&acmu, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cmu[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acbx,(cbx(i),i=1,kntr) >*/
- io__163.ciunit = status_1.iofile;
- s_wsfe(&io__163);
- do_fio(&c__1, (char *)&acbx, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cbx[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) accs,(ccs(i),i=1,kntr) >*/
- io__164.ciunit = status_1.iofile;
- s_wsfe(&io__164);
- do_fio(&c__1, (char *)&accs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&ccs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) abetaa,(betaac(i),i=1,kntr) >*/
- io__165.ciunit = status_1.iofile;
- s_wsfe(&io__165);
- do_fio(&c__1, (char *)&abetaa, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&betaac[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) aft,(ft(i),i=1,kntr) >*/
- io__166.ciunit = status_1.iofile;
- s_wsfe(&io__166);
- do_fio(&c__1, (char *)&aft, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&ft[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< 360 kntr=0 >*/
- L360:
- kntr = 0;
- /*< if ((loc.ne.0).and.(nodplc(loc+36).eq.0)) go to 330 >*/
- if (loc != 0 && nodplc[loc + 35] == 0) {
- goto L330;
- }
-
- /* jfets */
-
- /*< 400 if (jelcnt(13).eq.0) go to 500 >*/
- L400:
- if (cirdat_1.jelcnt[12] == 0) {
- goto L500;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 401 format(1h0,/,'0**** jfets') >*/
- /* L401: */
- /*< loc=locate(13) >*/
- loc = cirdat_1.locate[12];
- /*< kntr=0 >*/
- kntr = 0;
- /*< 420 if ((loc.eq.0).or.(nodplc(loc+25).ne.0)) go to 440 >*/
- L420:
- if (loc == 0 || nodplc[loc + 24] != 0) {
- goto L440;
- }
- /*< kntr=kntr+1 >*/
- ++kntr;
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< node1=nodplc(loc+2) >*/
- node1 = nodplc[loc + 1];
- /*< node2=nodplc(loc+3) >*/
- node2 = nodplc[loc + 2];
- /*< node3=nodplc(loc+4) >*/
- node3 = nodplc[loc + 3];
- /*< locm=nodplc(loc+7) >*/
- locm = nodplc[loc + 6];
- /*< type=nodplc(locm+2) >*/
- type = (doublereal) nodplc[locm + 1];
- /*< locm=nodplc(locm+1) >*/
- locm = nodplc[locm];
- /*< loct=lx0+nodplc(loc+19) >*/
- loct = tabinf_1.lx0 + nodplc[loc + 18];
- /*< anam(kntr)=value(locv) >*/
- anam[kntr - 1] = blank_1.value[locv - 1];
- /*< amod(kntr)=value(locm) >*/
- amod[kntr - 1] = blank_1.value[locm - 1];
- /*< cd(kntr)=type*(value(loct+3)-value(loct+4)) >*/
- cd[kntr - 1] = type * (blank_1.value[loct + 2] - blank_1.value[loct + 3]);
-
- /*< vgs(kntr)=value(lvnim1+node2)-value(lvnim1+node3) >*/
- vgs[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node2 - 1] -
- blank_1.value[tabinf_1.lvnim1 + node3 - 1];
- /*< vds(kntr)=value(lvnim1+node1)-value(lvnim1+node3) >*/
- vds[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node1 - 1] -
- blank_1.value[tabinf_1.lvnim1 + node3 - 1];
- /*< if (modedc.ne.1) go to 425 >*/
- if (status_1.modedc != 1) {
- goto L425;
- }
- /*< gm(kntr)=value(loct+5) >*/
- gm[kntr - 1] = blank_1.value[loct + 4];
- /*< gds(kntr)=value(loct+6) >*/
- gds[kntr - 1] = blank_1.value[loct + 5];
- /*< cgs(kntr)=value(loct+9) >*/
- cgs[kntr - 1] = blank_1.value[loct + 8];
- /*< cgd(kntr)=value(loct+11) >*/
- cgd[kntr - 1] = blank_1.value[loct + 10];
- /*< 425 if (kntr.ge.kntlim) go to 450 >*/
- L425:
- if (kntr >= kntlim) {
- goto L450;
- }
- /*< 430 loc=nodplc(loc) >*/
- L430:
- loc = nodplc[loc - 1];
- /*< go to 420 >*/
- goto L420;
- /*< 440 if (kntr.eq.0) go to 500 >*/
- L440:
- if (kntr == 0) {
- goto L500;
- }
- /*< 450 if (ititle.eq.0) write (iofile,401) >*/
- L450:
- if (ititle == 0) {
- io__167.ciunit = status_1.iofile;
- s_wsfe(&io__167);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
- io__168.ciunit = status_1.iofile;
- s_wsfe(&io__168);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt4) (amod(i),i=1,kntr) >*/
- io__169.ciunit = status_1.iofile;
- s_wsfe(&io__169);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&amod[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) aid,(cd(i),i=1,kntr) >*/
- io__170.ciunit = status_1.iofile;
- s_wsfe(&io__170);
- do_fio(&c__1, (char *)&aid, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avgs,(vgs(i),i=1,kntr) >*/
- io__171.ciunit = status_1.iofile;
- s_wsfe(&io__171);
- do_fio(&c__1, (char *)&avgs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vgs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avds,(vds(i),i=1,kntr) >*/
- io__172.ciunit = status_1.iofile;
- s_wsfe(&io__172);
- do_fio(&c__1, (char *)&avds, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vds[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< if (modedc.ne.1) go to 460 >*/
- if (status_1.modedc != 1) {
- goto L460;
- }
- /*< write (iofile,afmt3) agm,(gm(i),i=1,kntr) >*/
- io__173.ciunit = status_1.iofile;
- s_wsfe(&io__173);
- do_fio(&c__1, (char *)&agm, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&gm[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) agds,(gds(i),i=1,kntr) >*/
- io__174.ciunit = status_1.iofile;
- s_wsfe(&io__174);
- do_fio(&c__1, (char *)&agds, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&gds[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgs,(cgs(i),i=1,kntr) >*/
- io__175.ciunit = status_1.iofile;
- s_wsfe(&io__175);
- do_fio(&c__1, (char *)&acgs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgd,(cgd(i),i=1,kntr) >*/
- io__176.ciunit = status_1.iofile;
- s_wsfe(&io__176);
- do_fio(&c__1, (char *)&acgd, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< 460 kntr=0 >*/
- L460:
- kntr = 0;
- /*< if ((loc.ne.0).and.(nodplc(loc+25).eq.0)) go to 430 >*/
- if (loc != 0 && nodplc[loc + 24] == 0) {
- goto L430;
- }
-
- /* mosfets */
-
- /*< 500 if (jelcnt(14).eq.0) go to 600 >*/
- L500:
- if (cirdat_1.jelcnt[13] == 0) {
- goto L600;
- }
- /*< ititle=0 >*/
- ititle = 0;
- /*< 501 format(1h0,/,'0**** mosfets') >*/
- /* L501: */
- /*< loc=locate(14) >*/
- loc = cirdat_1.locate[13];
- /*< kntr=0 >*/
- kntr = 0;
- /*< 520 if ((loc.eq.0).or.(nodplc(loc+33).ne.0)) go to 540 >*/
- L520:
- if (loc == 0 || nodplc[loc + 32] != 0) {
- goto L540;
- }
- /*< kntr=kntr+1 >*/
- ++kntr;
- /*< locv=nodplc(loc+1) >*/
- locv = nodplc[loc];
- /*< node1=nodplc(loc+2) >*/
- node1 = nodplc[loc + 1];
- /*< node2=nodplc(loc+3) >*/
- node2 = nodplc[loc + 2];
- /*< node3=nodplc(loc+4) >*/
- node3 = nodplc[loc + 3];
- /*< node4=nodplc(loc+5) >*/
- node4 = nodplc[loc + 4];
- /*< node5=nodplc(loc+6) >*/
- node5 = nodplc[loc + 5];
- /*< node6=nodplc(loc+7) >*/
- node6 = nodplc[loc + 6];
- /*< locm=nodplc(loc+8) >*/
- locm = nodplc[loc + 7];
- /*< type=nodplc(locm+2) >*/
- type = (doublereal) nodplc[locm + 1];
- /*< locm=nodplc(locm+1) >*/
- locm = nodplc[locm];
- /*< loct=lx0+nodplc(loc+26) >*/
- loct = tabinf_1.lx0 + nodplc[loc + 25];
- /*< anam(kntr)=value(locv) >*/
- anam[kntr - 1] = blank_1.value[locv - 1];
- /*< amod(kntr)=value(locm) >*/
- amod[kntr - 1] = blank_1.value[locm - 1];
- /*< cd(kntr)=type*value(loct+4) >*/
- cd[kntr - 1] = type * blank_1.value[loct + 3];
- /*< vgs(kntr)=value(lvnim1+node2)-value(lvnim1+node3) >*/
- vgs[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node2 - 1] -
- blank_1.value[tabinf_1.lvnim1 + node3 - 1];
- /*< vds(kntr)=value(lvnim1+node1)-value(lvnim1+node3) >*/
- vds[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node1 - 1] -
- blank_1.value[tabinf_1.lvnim1 + node3 - 1];
- /*< vbs(kntr)=value(lvnim1+node4)-value(lvnim1+node3) >*/
- vbs[kntr - 1] = blank_1.value[tabinf_1.lvnim1 + node4 - 1] -
- blank_1.value[tabinf_1.lvnim1 + node3 - 1];
- /*< if (modedc.ne.1) go to 525 >*/
- if (status_1.modedc != 1) {
- goto L525;
- }
- /*< xl=value(locv+1)-2.0d0*value(locm+28) >*/
- xl = blank_1.value[locv] - blank_1.value[locm + 27] * 2.;
- /*< xw=value(locv+2) >*/
- xw = blank_1.value[locv + 1];
- /*< covlgs=value(locm+13)*xw >*/
- covlgs = blank_1.value[locm + 12] * xw;
- /*< covlgd=value(locm+14)*xw >*/
- covlgd = blank_1.value[locm + 13] * xw;
- /*< covlgb=value(locm+15)*xl >*/
- covlgb = blank_1.value[locm + 14] * xl;
- /*< xqco=value(locm+35) >*/
- xqco = blank_1.value[locm + 34];
- /*< devmod=value(locv+8) >*/
- devmod = blank_1.value[locv + 7];
- /*< vdsat(kntr)=value(locv+10) >*/
- vdsat[kntr - 1] = blank_1.value[locv + 9];
- /*< vth(kntr)=value(locv+9) >*/
- vth[kntr - 1] = blank_1.value[locv + 8];
- /*< gm(kntr)=value(loct+7) >*/
- gm[kntr - 1] = blank_1.value[loct + 6];
- /*< gds(kntr)=value(loct+8) >*/
- gds[kntr - 1] = blank_1.value[loct + 7];
- /*< gmb(kntr)=value(loct+9) >*/
- gmb[kntr - 1] = blank_1.value[loct + 8];
- /*< if(devmod.gt.0.0d0) go to 521 >*/
- if (devmod > 0.) {
- goto L521;
- }
- /*< vth(kntr)=value(locv+9) >*/
- vth[kntr - 1] = blank_1.value[locv + 8];
- /*< 521 cbd(kntr)=value(loct+24) >*/
- L521:
- cbd[kntr - 1] = blank_1.value[loct + 23];
- /*< cbs(kntr)=value(loct+26) >*/
- cbs[kntr - 1] = blank_1.value[loct + 25];
- /*< cgsov(kntr)=covlgs >*/
- cgsov[kntr - 1] = covlgs;
- /*< cgdov(kntr)=covlgd >*/
- cgdov[kntr - 1] = covlgd;
- /*< cgbov(kntr)=covlgb >*/
- cgbov[kntr - 1] = covlgb;
- /*< if (xqco.gt.0.5d0) go to 522 >*/
- if (xqco > .5) {
- goto L522;
- }
- /*< cggb(kntr)=value(loct+18) >*/
- cggb[kntr - 1] = blank_1.value[loct + 17];
- /*< cgdb(kntr)=value(loct+19) >*/
- cgdb[kntr - 1] = blank_1.value[loct + 18];
- /*< cgsb(kntr)=value(loct+20) >*/
- cgsb[kntr - 1] = blank_1.value[loct + 19];
- /*< cbgb(kntr)=value(loct+21) >*/
- cbgb[kntr - 1] = blank_1.value[loct + 20];
- /*< cbdb(kntr)=value(loct+22) >*/
- cbdb[kntr - 1] = blank_1.value[loct + 21];
- /*< cbsb(kntr)=value(loct+23) >*/
- cbsb[kntr - 1] = blank_1.value[loct + 22];
- /*< go to 525 >*/
- goto L525;
- /*< 522 cgs(kntr)=value(loct+12) >*/
- L522:
- cgs[kntr - 1] = blank_1.value[loct + 11];
- /*< cgd(kntr)=value(loct+14) >*/
- cgd[kntr - 1] = blank_1.value[loct + 13];
- /*< cgb(kntr)=value(loct+16) >*/
- cgb[kntr - 1] = blank_1.value[loct + 15];
- /*< 525 if (kntr.ge.kntlim) go to 550 >*/
- L525:
- if (kntr >= kntlim) {
- goto L550;
- }
- /*< 530 loc=nodplc(loc) >*/
- L530:
- loc = nodplc[loc - 1];
- /*< go to 520 >*/
- goto L520;
- /*< 540 if (kntr.eq.0) go to 600 >*/
- L540:
- if (kntr == 0) {
- goto L600;
- }
- /*< 550 if (ititle.eq.0) write (iofile,501) >*/
- L550:
- if (ititle == 0) {
- io__190.ciunit = status_1.iofile;
- s_wsfe(&io__190);
- e_wsfe();
- }
- /*< ititle=1 >*/
- ititle = 1;
- /*< write (iofile,afmt1) (anam(i),i=1,kntr) >*/
- io__191.ciunit = status_1.iofile;
- s_wsfe(&io__191);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&anam[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt4) (amod(i),i=1,kntr) >*/
- io__192.ciunit = status_1.iofile;
- s_wsfe(&io__192);
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&amod[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< if(type.eq.0.0d0) go to 555 >*/
- if (type == 0.) {
- goto L555;
- }
- /*< write (iofile,afmt3) aid,(cd(i),i=1,kntr) >*/
- io__193.ciunit = status_1.iofile;
- s_wsfe(&io__193);
- do_fio(&c__1, (char *)&aid, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avgs,(vgs(i),i=1,kntr) >*/
- io__194.ciunit = status_1.iofile;
- s_wsfe(&io__194);
- do_fio(&c__1, (char *)&avgs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vgs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avds,(vds(i),i=1,kntr) >*/
- io__195.ciunit = status_1.iofile;
- s_wsfe(&io__195);
- do_fio(&c__1, (char *)&avds, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vds[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avbs,(vbs(i),i=1,kntr) >*/
- io__196.ciunit = status_1.iofile;
- s_wsfe(&io__196);
- do_fio(&c__1, (char *)&avbs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vbs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< if (modedc.ne.1) go to 560 >*/
- if (status_1.modedc != 1) {
- goto L560;
- }
- /*< write (iofile,afmt2) avth,(vth(i),i=1,kntr) >*/
- io__197.ciunit = status_1.iofile;
- s_wsfe(&io__197);
- do_fio(&c__1, (char *)&avth, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vth[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avdsat,(vdsat(i),i=1,kntr) >*/
- io__198.ciunit = status_1.iofile;
- s_wsfe(&io__198);
- do_fio(&c__1, (char *)&avdsat, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vdsat[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) agm,(gm(i),i=1,kntr) >*/
- io__199.ciunit = status_1.iofile;
- s_wsfe(&io__199);
- do_fio(&c__1, (char *)&agm, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&gm[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) agds,(gds(i),i=1,kntr) >*/
- io__200.ciunit = status_1.iofile;
- s_wsfe(&io__200);
- do_fio(&c__1, (char *)&agds, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&gds[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) agmb,(gmb(i),i=1,kntr) >*/
- io__201.ciunit = status_1.iofile;
- s_wsfe(&io__201);
- do_fio(&c__1, (char *)&agmb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&gmb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acbd,(cbd(i),i=1,kntr) >*/
- io__202.ciunit = status_1.iofile;
- s_wsfe(&io__202);
- do_fio(&c__1, (char *)&acbd, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cbd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acbs,(cbs(i),i=1,kntr) >*/
- io__203.ciunit = status_1.iofile;
- s_wsfe(&io__203);
- do_fio(&c__1, (char *)&acbs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cbs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgsov,(cgsov(i),i=1,kntr) >*/
- io__204.ciunit = status_1.iofile;
- s_wsfe(&io__204);
- do_fio(&c__1, (char *)&acgsov, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgsov[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgdov,(cgdov(i),i=1,kntr) >*/
- io__205.ciunit = status_1.iofile;
- s_wsfe(&io__205);
- do_fio(&c__1, (char *)&acgdov, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgdov[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgbov,(cgbov(i),i=1,kntr) >*/
- io__206.ciunit = status_1.iofile;
- s_wsfe(&io__206);
- do_fio(&c__1, (char *)&acgbov, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgbov[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< if (xqco.gt.0.5d0) go to 552 >*/
- if (xqco > .5) {
- goto L552;
- }
- /*< write (iofile,551) >*/
- io__207.ciunit = status_1.iofile;
- s_wsfe(&io__207);
- e_wsfe();
- /*< 551 format(' derivatives of gate (dqgdvx) and bulk (dqbdvx) charges') >*/
- /*< write (iofile,afmt3) acggb,(cggb(i),i=1,kntr) >*/
- io__208.ciunit = status_1.iofile;
- s_wsfe(&io__208);
- do_fio(&c__1, (char *)&acggb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cggb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgdb,(cgdb(i),i=1,kntr) >*/
- io__209.ciunit = status_1.iofile;
- s_wsfe(&io__209);
- do_fio(&c__1, (char *)&acgdb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgdb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgsb,(cgsb(i),i=1,kntr) >*/
- io__210.ciunit = status_1.iofile;
- s_wsfe(&io__210);
- do_fio(&c__1, (char *)&acgsb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgsb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acbgb,(cbgb(i),i=1,kntr) >*/
- io__211.ciunit = status_1.iofile;
- s_wsfe(&io__211);
- do_fio(&c__1, (char *)&acbgb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cbgb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acbdb,(cbdb(i),i=1,kntr) >*/
- io__212.ciunit = status_1.iofile;
- s_wsfe(&io__212);
- do_fio(&c__1, (char *)&acbdb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cbdb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acbsb,(cbsb(i),i=1,kntr) >*/
- io__213.ciunit = status_1.iofile;
- s_wsfe(&io__213);
- do_fio(&c__1, (char *)&acbsb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cbsb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< go to 560 >*/
- goto L560;
- /*< 552 write (iofile,afmt3) acgs,(cgs(i),i=1,kntr) >*/
- L552:
- io__214.ciunit = status_1.iofile;
- s_wsfe(&io__214);
- do_fio(&c__1, (char *)&acgs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgd,(cgd(i),i=1,kntr) >*/
- io__215.ciunit = status_1.iofile;
- s_wsfe(&io__215);
- do_fio(&c__1, (char *)&acgd, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgb,(cgb(i),i=1,kntr) >*/
- io__216.ciunit = status_1.iofile;
- s_wsfe(&io__216);
- do_fio(&c__1, (char *)&acgb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< go to 560 >*/
- goto L560;
- /*< 555 write (iofile,afmt3) aid,(cd(i),i=1,kntr) >*/
- L555:
- io__217.ciunit = status_1.iofile;
- s_wsfe(&io__217);
- do_fio(&c__1, (char *)&aid, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) aig,(cg(i),i=1,kntr) >*/
- io__218.ciunit = status_1.iofile;
- s_wsfe(&io__218);
- do_fio(&c__1, (char *)&aig, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cg[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avgs,(vgs(i),i=1,kntr) >*/
- io__219.ciunit = status_1.iofile;
- s_wsfe(&io__219);
- do_fio(&c__1, (char *)&avgs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vgs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avds,(vds(i),i=1,kntr) >*/
- io__220.ciunit = status_1.iofile;
- s_wsfe(&io__220);
- do_fio(&c__1, (char *)&avds, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vds[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt2) avbs,(vbs(i),i=1,kntr) >*/
- io__221.ciunit = status_1.iofile;
- s_wsfe(&io__221);
- do_fio(&c__1, (char *)&avbs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&vbs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< if (modedc.ne.1) go to 560 >*/
- if (status_1.modedc != 1) {
- goto L560;
- }
- /*< write (iofile,afmt3) agm,(gm(i),i=1,kntr) >*/
- io__222.ciunit = status_1.iofile;
- s_wsfe(&io__222);
- do_fio(&c__1, (char *)&agm, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&gm[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) agds,(gds(i),i=1,kntr) >*/
- io__223.ciunit = status_1.iofile;
- s_wsfe(&io__223);
- do_fio(&c__1, (char *)&agds, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&gds[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgs,(cgs(i),i=1,kntr) >*/
- io__224.ciunit = status_1.iofile;
- s_wsfe(&io__224);
- do_fio(&c__1, (char *)&acgs, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgs[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgd,(cgd(i),i=1,kntr) >*/
- io__225.ciunit = status_1.iofile;
- s_wsfe(&io__225);
- do_fio(&c__1, (char *)&acgd, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgd[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acgb,(cgb(i),i=1,kntr) >*/
- io__226.ciunit = status_1.iofile;
- s_wsfe(&io__226);
- do_fio(&c__1, (char *)&acgb, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cgb[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< write (iofile,afmt3) acds,(cds(i),i=1,kntr) >*/
- io__227.ciunit = status_1.iofile;
- s_wsfe(&io__227);
- do_fio(&c__1, (char *)&acds, (ftnlen)sizeof(doublereal));
- i_1 = kntr;
- for (i = 1; i <= i_1; ++i) {
- do_fio(&c__1, (char *)&cds[i - 1], (ftnlen)sizeof(doublereal));
- }
- e_wsfe();
- /*< 560 kntr=0 >*/
- L560:
- kntr = 0;
- /*< if ((loc.ne.0).and.(nodplc(loc+33).eq.0)) go to 530 >*/
- if (loc != 0 && nodplc[loc + 32] == 0) {
- goto L530;
- }
-
- /* operating point analyses */
-
- /*< 600 if (modedc.ne.1) go to 700 >*/
- L600:
- if (status_1.modedc != 1) {
- goto L700;
- }
- /*< if (kinel.eq.0) go to 610 >*/
- if (dc_1.kinel == 0) {
- goto L610;
- }
- /*< call sstf >*/
- sstf_();
- /*< 610 if (nsens.eq.0) go to 700 >*/
- L610:
- if (tabinf_1.nsens == 0) {
- goto L700;
- }
- /*< call sencal >*/
- sencal_();
-
- /* finished */
-
- /*< 700 if (modedc.eq.2) go to 710 >*/
- L700:
- if (status_1.modedc == 2) {
- goto L710;
- }
- /*< if (jacflg.ne.0) go to 705 >*/
- if (ac_1.jacflg != 0) {
- goto L705;
- }
- /*< call clrmem(lvnim1) >*/
- clrmem_(&tabinf_1.lvnim1);
- /*< call clrmem(lx0) >*/
- clrmem_(&tabinf_1.lx0);
- /*< 705 call clrmem(lvn) >*/
- L705:
- clrmem_(&tabinf_1.lvn);
- /*< call clrmem(lvntmp) >*/
- clrmem_(&tabinf_1.lvntmp);
- /*< if (memptr(macins)) call clrmem(macins) >*/
- if (memptr_(&tabinf_1.macins)) {
- clrmem_(&tabinf_1.macins);
- }
- /*< 710 call second(t2) >*/
- L710:
- second_(&t2);
- /*< rstats(5)=rstats(5)+t2-t1 >*/
- miscel_1.rstats[4] = miscel_1.rstats[4] + t2 - t1;
- /*< return >*/
- return 0;
- /*< end >*/
- } /* dcop_ */
-
- #undef cgdb
- #undef cbgb
- #undef cds
- #undef cgb
- #undef cgd
- #undef cgs
- #undef vth
- #undef cbs
- #undef cbd
- #undef vbs
- #undef vgs
- #undef vds
- #undef gds
- #undef rpi
- #undef rx
- #undef cbx
- #undef req
- #undef ccs
- #undef cmu
- #undef cpi
- #undef vce
- #undef vbc
- #undef vbe
- #undef cap
- #undef ai1
- #undef av1
- #undef cvalue
- #undef nodplc
- #undef ro
- #undef ft
- #undef vd
- #undef betadc
- #undef betaac
- #undef cg
- #undef cd
- #undef cc
- #undef cb
- #undef vdsat
- #undef cgsov
- #undef cgbov
- #undef cgdov
- #undef cgsb
- #undef cggb
- #undef afmt1
- #undef ablnk
- #undef aft
- #undef abetaa
- #undef abetad
- #undef arx
- #undef acbx
- #undef accs
- #undef agmb
- #undef agds
- #undef agm
- #undef avdsat
- #undef avth
- #undef acds
- #undef acgb
- #undef acbsb
- #undef acbdb
- #undef acbgb
- #undef acgsb
- #undef acgdb
- #undef acggb
- #undef acgbov
- #undef acgdov
- #undef acgsov
- #undef acbs
- #undef acbd
- #undef acgd
- #undef acgs
- #undef acmu
- #undef acpi
- #undef acap
- #undef aro
- #undef arpi
- #undef areq
- #undef aig
- #undef aic
- #undef aib
- #undef aid
- #undef asrci
- #undef asrcv
- #undef avbs
- #undef avds
- #undef avgs
- #undef avce
- #undef avbc
- #undef avbe
- #undef avd
- #undef optitl
- #undef afmt4
- #undef afmt3
- #undef afmt2
-
-
-